package com.ttbj.product.api;

import java.util.List;

import com.ttbj.product.bean.dto.FreightDto;
import com.ttbj.product.bean.dto.PageGlobal;

/**
 * 为司机接单，查询单，接货等controller服务专属接口
 * 修改配送单状态
 * @author Medivh
 */
public interface FreightFacade {
	
	/**
	 * 查询短程配送司机订单列表
	 * @param driverId 司机的订单编号
	 * @param toCmple 约束查询订单是否完成的条件
	 * 是否完成如果null则是全部查询如果为true则查询完成的订单，如果为false则查询未完成的订单
	 * @param isDate约束查询订单日期查询的条件
	 * @throws Exception 
	 */
	public List<FreightDto> historyFreight(Long driverId, Boolean toCmple, Integer isDate);

	/**
	 * 精确查询司机的配送单信息
	 * @param waybillId  司机配送单号
	 * @return
	 * @throws Exception 
	 */
	public FreightDto detailFreight(Long waybillId);
	
	
 
	/**
	 * 根据订单所属司机的配送单修改订单状态
	 * 缓存查看配送单状态
	 * @param waybillId 司机配送单号
	 * @param orderState 订单状态
	 */
	public void updateOrderStateByCache(Long waybillId,Integer orderState);
	
	 /**
	  * 查询配送单中司机当前状态是否以满足订单状态总数
	  * @param waybill
	  * @param orderState
	  */
	public boolean  matchStateFull(Long waybillId,Integer orderState);

	/**
	 * 根据是否已完成 是否是搬运单 和司机id分页查询信息
	 * @param driverId
	 * @param isMove
	 * @param isCompl
	 * @param page
	 * @return
	 */
	public List<FreightDto> freightList(Long driverId, Integer isMove, Integer isCompl, PageGlobal page);

	
 
	
	
	
	
	

}
